<template>
	<page-meta :root-font-size="getRootFontSize()"></page-meta>
	<view class="mask">
		<view class="content" v-show="contentShow">
			<image style="width: 100%; height: 100px; top: -1px" mode="scaleToFill" src="/static/icon/toUpdate.png"></image>
			<view class="titleBox">{{ i18n.ctwfont194 }}</view>
			<view class="titleBox2">{{ i18n.ctwfont195 }}</view>
			<view class="text">{{ message }}</view>
			<view class="bottomBtn">
				<view v-show="cancelButton" class="bottomBtnL" @tap="close">cancel</view>
				<view class="bottomBtnR" @tap.stop="doUpData">update</view>
			</view>
		</view>
		<view class="doUpDataBox" v-show="doUpDataShow">
			<view class="totalBytesExpectedToWriteBox">Installation package{{ totalBytesExpectedToWrite }} MB</view>
			<progress class="progressBox" :percent="progress" show-info stroke-width="6" />
			<view class="">download {{ totalBytesWritten }} MB</view>
			<view class="jingaoBox">Do not leave the page during download and installation</view>
		</view>
	</view>
</template>

<script>
import baseFont from '@/utils/baseFont.js';
export default {
	extends: baseFont,
	data() {
		return {
			isUpdate: 1, // 强弱更新
			message: '修复了一些已知问题,为了您更好的体验请更新',
			appUrl: '', // app下载地址
			contentShow: true,
			doUpDataShow: false,
			progress: 0, // 下载进度百分比
			totalBytesWritten: 0, // 已经下载的数据长度
			totalBytesExpectedToWrite: 0, // 预期需要下载的数据总长度
			downloadTask: null, // 下载api
			cancelButton: 1, // 取消按钮
			wgtUrl: '' // wgt下载地址
		};
	},
	onLoad(option) {
		const { paramsOption } = option;
		if (paramsOption) {
			const params = JSON.parse(decodeURIComponent(paramsOption));
			this.message = params.message;
			this.appUrl = params.appUrl;
			this.cancelButton = params.cancelButton === 2 ? true : false;
			this.wgtUrl = params.wgtUrl;
			this.isUpdate = params.isUpdate;
		}
		// const { isUpdate, message, appUrl, cancelButton, wgtUrl } = option;
		// console.log(isUpdate,cancelButton, wgtUrl)
		// this.message = message;
		// this.appUrl = appUrl;
		// // this.cancelButton = cancelButton === 1 ? true : false
		// this.wgtUrl = wgtUrl
		// this.isUpdate = isUpdate
	},
	onHide() {
		this.doUpDataShow = false;
		this.close();
		if (this.downloadTask) {
			this.downloadTask.abort(); // 离开页面终止下载
		}
	},
	computed: {
		i18n() {
			return this.$t('login');
		}
	},
	methods: {
		close() {
			const pages = getCurrentPages();
			this.contentShow = false;
			if (pages.length === 1) {
				// #ifdef APP-PLUS
				uni.switchTab({
					url: '/pages/home/index'
				});
				// #endif
				// #ifdef H5
				this.$Router.push('/pages/home/index');
				// #endif
			} else {
				uni.navigateBack({
					delta: 1
				});
			}
		},
		// 更新操作
		doUpData(e) {
			// #ifdef APP-NVUE
			e.stopPropagation();
			// #endif
			this.contentShow = false;
			let isAndroid = true;
			switch (uni.getSystemInfoSync().platform) {
				case 'android':
					isAndroid = true;
					break;
				case 'ios':
					isAndroid = false;
					break;
			}
			var _this = this;
			if (this.isUpdate === 1) {
				this.doUpDataShow = true;
				this.downloadTask = uni.downloadFile({
					//执行下载
					url: this.wgtUrl,
					success: downloadResult => {
						//下载成功
						_this.contentShow = false;
						_this.doUpDataShow = false;
						if (downloadResult.statusCode == 200) {
							uni.showModal({
								title: 'Tips',
								content: 'Update succeeded. Are you sure to restart now?',
								confirmText: 'restart',
								// cancelText: 'cancel',
								showCancel: false,
								// confirmColor: '#EE8F57',
								success: function(res) {
									if (res.confirm == true) {
										_this.doUpDataShow = false;
										_this.close();
										plus.runtime.install(
											//安装
											downloadResult.tempFilePath,
											{
												force: true
											},
											function(res2) {
												// utils.showToast('更新成功，重启中');
												plus.runtime.restart();
											},
											function(eorr2) {}
										);
									} else if (res.cancel == true) {
										_this.doUpDataShow = false;
										_this.close();
									}
								}
							});
						}
					},
					fail: eorr => {
						console.log(eorr);
					}
				});
				this.downloadTask.onProgressUpdate(res => {
					this.progress = res.progress;
					this.totalBytesWritten = (res.totalBytesWritten / (1024 * 1024)).toFixed(2);
					this.totalBytesExpectedToWrite = (res.totalBytesExpectedToWrite / (1024 * 1024)).toFixed(2);
					// if (res.progress > 80) {
					// 	this.downloadTask.abort();
					// }
				});
			} else {
				if (isAndroid) {
					const sysLang = uni.getLocale();
					if (sysLang == 'zh-Hans') {
						plus.runtime.openURL('https://ctwcms.oss-ap-southeast-1.aliyuncs.com/web/ctw/app/ctwCargo.apk');
					} else {
						plus.runtime.openURL(this.appUrl);
					}
				} else {
					plus.runtime.openURL(this.appUrl);
				}
				// if (isAndroid) {
				// 	// const brandArr = [
				// 	// 	{
				// 	// 		url: 'mimarket://details?id=com.xx.xx',
				// 	// 		type: 'XIAOMI'
				// 	// 	},
				// 	// 	{
				// 	// 		url: 'oppomarket://details?packagename=com.xx.xx',
				// 	// 		type: 'OPPO'
				// 	// 	},
				// 	// 	{
				// 	// 		url: 'vivomarket://details?id=com.xx.xx',
				// 	// 		type: 'VIVO'
				// 	// 	},
				// 	// 	{
				// 	// 		url: 'samsungapps://ProductDetail/',
				// 	// 		type: 'SAMSUNG'
				// 	// 	}
				// 	// ];
				// 	uni.getSystemInfo({
				// 		success: function(res) {
				// 			if (res.brand) {
				// 				const isTrue = brandArr.find(item => item.type == res.brand.toUpperCase());
				// 				if (isTrue) {
				// 					plus.runtime.openURL(isTrue.url);
				// 				} else {
				// 					plus.runtime.openURL(this.appUrl);
				// 				}
				// 			} else {
				// 				plus.runtime.openURL(this.appUrl);
				// 			}
				// 		},
				// 		fail: function(err) {
				// 			plus.runtime.openURL(this.appUrl);
				// 		}
				// 	});
				// } else {
				// 	plus.runtime.openURL(this.appUrl);
				// }
			}
			// if (isAndroid) {
			// 	this.doUpDataShow = true;
			// 	this.downloadTask = uni.downloadFile({
			// 		//执行下载
			// 		// url: 'http://8.218.242.124:8080/uploads/app/app_ctw.apk', //下载地址
			// 		url: this.appUrl,
			// 		success: downloadResult => {
			// 			//下载成功
			// 			_this.contentShow = false;
			// 			_this.doUpDataShow = false;
			// 			if (downloadResult.statusCode == 200) {
			// 				uni.showModal({
			// 					title: 'Tips',
			// 					content: 'Update succeeded. Are you sure to restart now?',
			// 					confirmText: 'restart',
			// 					cancelText: 'cancel',
			// 					confirmColor: '#EE8F57',
			// 					success: function(res) {
			// 						if (res.confirm == true) {
			// 							_this.doUpDataShow = false;
			// 							_this.close();
			// 							plus.runtime.install(
			// 								//安装
			// 								downloadResult.tempFilePath,
			// 								{
			// 									force: true
			// 								},
			// 								function(res2) {
			// 									// utils.showToast('更新成功，重启中');
			// 									plus.runtime.restart();
			// 								},
			// 								function(eorr2) {}
			// 							);
			// 						} else if (res.cancel == true) {
			// 							_this.doUpDataShow = false;
			// 							_this.close();
			// 						}
			// 					}
			// 				});
			// 			}
			// 		},
			// 		fail: eorr => {
			// 			console.log(eorr);
			// 		}
			// 	});
			// 	this.downloadTask.onProgressUpdate(res => {
			// 		this.progress = res.progress;
			// 		this.totalBytesWritten = (res.totalBytesWritten / (1024 * 1024)).toFixed(2);
			// 		this.totalBytesExpectedToWrite = (res.totalBytesExpectedToWrite / (1024 * 1024)).toFixed(2);
			// 		// if (res.progress > 80) {
			// 		// 	this.downloadTask.abort();
			// 		// }
			// 	});
			// } else {
			// 	plus.runtime.openURL(this.appUrl);
			// 	// // ios打开应用商店
			// 	// var appleId = '1614185861'; //apple id  在 app conection 上传的位置可以看到  https://appstoreconnect.apple.com/
			// 	// plus.runtime.launchApplication(
			// 	// 	{
			// 	// 		action: `itms-apps://itunes.apple.com/cn/app/id${appleId}?mt=8`
			// 	// 	},
			// 	// 	function(e) {
			// 	// 		console.log('Open system default browser failed: ' + e.message);
			// 	// 	}
			// 	// );
			// }
		}
		// 跳转到**应用**的权限页面
		// gotoAppPermissionSetting() {
		// 	const isIos = false;
		// 	if (isIos) {
		// 		var UIApplication = plus.ios.import('UIApplication');
		// 		var application2 = UIApplication.sharedApplication();
		// 		var NSURL2 = plus.ios.import('NSURL');
		// 		// var setting2 = NSURL2.URLWithString("prefs:root=LOCATION_SERVICES");
		// 		var setting2 = NSURL2.URLWithString('app-settings:');
		// 		application2.openURL(setting2);

		// 		plus.ios.deleteObject(setting2);
		// 		plus.ios.deleteObject(NSURL2);
		// 		plus.ios.deleteObject(application2);
		// 	} else {
		// 		// console.log(plus.device.vendor);
		// 		var Intent = plus.android.importClass('android.content.Intent');
		// 		var Settings = plus.android.importClass('android.provider.Settings');
		// 		var Uri = plus.android.importClass('android.net.Uri');
		// 		var mainActivity = plus.android.runtimeMainActivity();
		// 		var intent = new Intent();
		// 		intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
		// 		var uri = Uri.fromParts('package', mainActivity.getPackageName(), null);
		// 		intent.setData(uri);
		// 		mainActivity.startActivity(intent);
		// 	}
		// }
	}
};
</script>
<style>
page {
	background: transparent;
}
</style>
<style lang="scss" scoped>
.mask {
	position: fixed;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	/* #ifndef APP-NVUE */
	display: flex;
	/* #endif */
	justify-content: center;
	align-items: center;
	background-color: rgba(0, 0, 0, 0.4);
}

.content {
	position: relative;
	width: 500rpx;
	height: 300px;
	border-radius: 10px;
	// padding: 10px;
	box-sizing: border-box;
	background-color: #fff;
	overflow: hidden;
	.titleBox {
		font-size: $uni-font-size-custom-g;
		color: #d80c24;
		padding: 5px 10px 0 10px;
	}
	.titleBox2 {
		font-size: $uni-font-size-custom-g;
		line-height: 16px;
		color: #d80c24;
		padding: 0 10px 0 10px;
	}
	.text {
		margin-top: 15px;
		padding: 0 10px;
		font-size: $uni-font-size-custom-e;
		text-align: left;
	}
	.bottomBtn {
		position: absolute;
		bottom: 6%;
		left: 0;
		width: 100%;
		display: flex;
		justify-content: space-around;
		text-align: center;
		// padding: 5px 0;
		// border-top: 1px solid #ccc;
		.bottomBtnL {
			// padding: 5px 0;
			// border-right: 1px solid #ccc;
			border: 1px solid #cbcbcb;
			padding: 0 20px;
			border-radius: 5px;
			color: #cbcbcb;
			line-height: 1.8;
			margin: 0;
		}
		.bottomBtnR {
			// padding: 5px 0;
			background-color: #80b2ff;
			padding: 0 20px;
			border-radius: 5px;
			color: #ffffff;
			line-height: 1.8;
			margin: 0;
		}
		.bottomBtnL:hover {
			background-color: #ccc;
			color: #fff;
		}
		.bottomBtnR:hover {
			background-color: #ccc;
			color: #fff;
		}
	}
}
.doUpDataBox {
	position: relative;
	width: 500rpx;
	height: 200px;
	border-radius: 10px;
	padding: 10px;
	box-sizing: border-box;
	background-color: #fff;
	overflow: hidden;
	text-align: center;
	.totalBytesExpectedToWriteBox {
		padding: 20px 0;
	}
	.progressBox {
		padding-bottom: 10px;
	}
	.jingaoBox {
		color: #fc011a;
		font-size: $uni-font-size-custom-d;
		margin-top: 15px;
	}
}
</style>
